public class ChessBoard {
    public static void main(String[] args) {
        // 1.因为输出的棋盘中有非数字类型 所以把整个二维数组都定义为String类型的数组
        String[][] res = new String[17][17];
        for (int i = 0; i < res.length; i++) {
            for (int j = 0; j < res[i].length; j++) {
                // 2.特判：第一行第一列的第一个字符为" " -> 空字符串
                if(i == 0 && j ==0){
                    res[i][j] = " ";
                }else if(i == 0 && j < 17){
                    // 3. 第一行的所有字符都往后移动一位，列坐标"j"都要变成 "j - 1" 并且 a - f为16进制的10-15 进行进制转换
                    String hex = Integer.toHexString(j - 1);
                    res[i][j] = hex;
                }else if(i < 17 && j ==0){
                    // 4. 第一列的所有字符都往后移动一位，列坐标"i"都要变成 "i - 1" 并且 a - f为16进制的10-15 进行进制转换
                    String hex_ = Integer.toHexString(i - 1);
                    res[i][j] = hex_;
                }else{
                    // 5.其余所有位置上的数字用 " + " 填充
                    res[i][j] = "+";
                }
                //输出每一行的值
                System.out.print(res[i][j] + " ");
            }
            System.out.println();
        }
    }}
